package de.QuizCommunity.service;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import de.QuizCommunity.domain.Frage;
import de.QuizCommunity.util.XMLGetParser;

public class Frage_XML_Parser {
	static final String KEY_ITEM = "frage"; // parent node
	static final String KEY_ID = "idFrage";
	static final String KEY_FRAGE = "fragestellung";
	static final String KEY_DATE = "einstelldatum";
	static final String KEY_VERSION = "version";
	static final String KEY_GESP = "gesperrt";
	static final String KEY_STADT = "stadt";
	static final String KEY_BENUTZER = "benutzerId";

	public static Frage getFrage(int id) throws NullPointerException {
		// String URL =
		// "http://10.0.2.2:8080/webservice/rest/webservice/frage/"+id;
		String URL = "http://www.iwi.hs-karlsruhe.de/ebatc/QuizCommunity/rest/webservice/frage/"+ id;
		XMLGetParser parser = new XMLGetParser();
		String xml = parser.getXmlFromUrl(URL); // getting XML
		Document doc = parser.getDomElement(xml); // getting DOM element
		Frage frage = new Frage();
		NodeList nl = doc.getElementsByTagName(KEY_ITEM);
		for (int i = 0; i < nl.getLength(); i++) {
			Element e = (Element) nl.item(i);
			frage.setFragestellung(parser.getValue(e, KEY_FRAGE));
			frage.setGesperrt(Byte.parseByte(parser.getValue(e, KEY_GESP)));
			frage.setIdFrage(Integer.parseInt(parser.getValue(e, KEY_ID)));
			frage.setVersion(Integer.parseInt(parser.getValue(e, KEY_VERSION)));
			frage.setAntwortList(Antwort_XML_Parser.getAntwort(id));
			frage.setBewertungs(Bewertung_XML_Parser.getBewertungt(id));
			frage.setBenutzer(Benutzer_XML_Parser.getBenutzer(Integer.parseInt(parser.getValue(e, KEY_BENUTZER))));
			frage.setStadt(parser.getValue(e, KEY_STADT));
		}
		return frage;
	}
	
	

}
